package com.orangelife.service.bill;

import java.text.ParseException;
import java.util.Date;
import java.util.List;
import java.util.Map;

import com.orangelife.exception.AppBizException;
import com.orangelife.webservice.service.bill.entity.BillDto;

public interface IBillService {

	public List<Map<String, Object>> getprintplan(String commID,
			String planType, String pageIndex, String pageSize)
			throws AppBizException, ParseException ;
	
	public Map<String,Object>  getPlanDetail ( String planID)  throws AppBizException;
	
	public int  updateMerRecordStatus(String commID,String bstatus,String astatus,String itemStat)throws AppBizException;
	public int  delPropFeeDetailByPlanID (Map<String,Object> param)  throws AppBizException;
	public int  updatePlan (Map<String,Object> param)  throws AppBizException;
	public int  crePlan (Map<String,Object> param)  throws AppBizException;
	public List<Map<String,Object>> getLastFinishPlan (String commID,Date date)  throws AppBizException;
	public List<Map<String,Object>> getLastFinishPlans (List<String> commIDs,Date date)  throws AppBizException;

	public List<Map<String,Object>> getPastFeedetail (String commID)  throws AppBizException;
	public List<Map<String,Object>> checkMeter (String commID,String period)  throws AppBizException;
	public List<Map<String,Object>> checkPlan (String planID)  throws AppBizException;
	/**
	 * 
	 * 生成某个房屋的单个缴费细项
	 * 
	 * */
	public void creFeeDetail(String commID,String buildID,String unitID,String apartmentID,String feeTypeID,String startTime,String endTime) throws AppBizException;

	/**
	 * 
	 * 生成某个房屋的多个缴费细项
	 * 
	 * */
	public void creFeeDetail(String apartmentID,String[]feeTypeID,long startTime,long endTime) throws AppBizException;

	/**
	 * 
	 * 生成多个房屋的多个缴费细项
	 * 
	 * */
	public void creFeeDetail(String[] apartmentIDs,String[] feeTypeIDs,long startTime,long endTime) throws AppBizException;
	/**
	 * 
	 * 生成某个房屋的固定缴费细项
	 * 
	 * */
	public List<Map<String,Object>> creFixFeeDetail(String apartmentID,String commID,String[] feeTypeIDs,String startTime,String endTime) throws AppBizException;

	
	
	
	/**
	 * 
	 *开始进行缴费生成
	 * 
	 * */
	public void startCreFeeDetail(BillDto billDto) throws AppBizException;
	
	/**
	 * 
	 *撤销缴费账单
	 * 
	 * */
	public void canclePlan(String  planID) throws AppBizException;
	

	public List<Map<String,Object>> getNewPropFeeBill(List<String> commIDs,String endTime) throws AppBizException;
}
